﻿/*
 * Created by SharpDevelop.
 * User: Lousabit
 * Date: 31/10/2011
 * Time: 2:25
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using Business_Entity;
using Business_Logic;

namespace PetSoft.GUI.Ventas
{
	/// <summary>
	/// Description of GUIBuscarDescuento.
	/// </summary>
	public partial class GUIBuscarDescuentoProducto : Form
	{
		private List<BEDescuento> descuentos;
		
		public GUIBuscarDescuentoProducto()
		{
			try{
			//
			// The InitializeComponent() call is required for Windows Forms designer support.
			//
			InitializeComponent();
			
			//
			// TODO: Add constructor code after the InitializeComponent() call.
			//
			}catch(Exception ex){
				Utils.MessageError("Error al construir la ventana.", ex);
			}
		}
		
		void GUIBuscarDescuentoLoad(object sender, EventArgs e)
		{
			
		}
		
		void cargarGrid(){
			try{
				descuentosDGV.Rows.Clear();
				
				int idDescuento=-1;
				try{
					idDescuento = int.Parse(idTB.Text);
				}catch(Exception ex){
					//idDescuento = -1
				}
				
				descuentos = BLDescuento.getDescuentos(idDescuento, desdeDTP.Value,hastaDTP.Value);
				
				foreach(BEDescuento descuento in descuentos){
					descuentosDGV.Rows.Add();
					
					DataGridViewRow row = descuentosDGV.Rows[descuentosDGV.Rows.Count-1];
					
					row.Cells["Descuento"].Value = descuento.Descuento;
					
					row.Cells["Desde"].Value = descuento.Desde;
					descuentosDGV.Columns["Desde"].DefaultCellStyle.Format = "dd/MM/yyyy";
					
					row.Cells["Hasta"].Value = descuento.Hasta;
					descuentosDGV.Columns["Hasta"].DefaultCellStyle.Format = "dd/MM/yyyy";					
					
					row.Cells["Codigo"].Value = descuento.Id;
					row.Cells["Descripcion"].Value = descuento.Descripcion.ToUpper();
					
					row.Cells["N"].Value = descuentos.IndexOf(descuento);
					
					cantidadLBL.Text = ""+descuentos.Count+" descuentos";
				}
			
			}catch(Exception ex){
				Utils.MessageError("Error al cargar la lista de descuentos.", ex);
			}
						
		}
		
		void BuscarBTNClick(object sender, EventArgs e)
		{
			cargarGrid();
		}
		
		void NuevoBTNClick(object sender, EventArgs e)
		{
			try{
				GUIDescuentoProducto v = new GUIDescuentoProducto(null);
				v.ShowDialog(this);
				
				if (v.CambiarGrillaPadre){
					cargarGrid();			
				}
				
			}catch(Exception ex){
				Utils.MessageError("Error al intentar abrir ventana de Nuevo Descuento.", ex);
			}
			
			
		}
		
		void VerBTNClick(object sender, EventArgs e)
		{
			try{
				
				List<int> inds = Utils.getCheckedIndexes(descuentosDGV, "Eliminar", "N");
				
				if (inds == null || inds.Count == 0)return;
				
				if (inds.Count > 1){
					Utils.MessageAviso("Seleccionar solo un descuento.");
					return;
				}
								
				int ind = inds[0];
				BEDescuento d = descuentos[ind];
				BLDescuento.getDescuentoCompleto(d);
				GUIDescuentoProducto v = new GUIDescuentoProducto(d);
				v.ShowDialog(this);
			}
			catch(Exception ex){
				Utils.MessageError("Error al intentar abrir ventana de Ver Descuento.", ex);
			}
			
		}
		
		
		void EliminarBTNClick(object sender, EventArgs e)
		{
						
			try{
				
				if (!Utils.MessagePregunta("¿Realmente desea eliminar los descuentos seleccionados?")){
					return;
				}
				
				List<BEDescuento>listaElim = new List<BEDescuento>();
				
				foreach(DataGridViewRow row in descuentosDGV.Rows){
					if (row.Cells["Eliminar"].Value != null && (bool)row.Cells["Eliminar"].Value == true){
						listaElim.Add(descuentos[(int)row.Cells["N"].Value]);
					}
				}
				
				BLDescuento.eliminarDescuentos(listaElim);
			
			}catch(Exception ex){
				Utils.MessageError("Error al intentar eliminar descuentos.", ex);
			}
			
				cargarGrid();
				
		}
		
		void IdTBKeyPress(object sender, KeyPressEventArgs e)
		{
			try{
				Utils.SoloNumerosTB(sender, e);
			}catch(Exception ex){
				Utils.MessageError("Error al validar campo de Código", ex);
			}
		}
		
		void DesdeDTPValueChanged(object sender, EventArgs e)
		{
			try{
				Utils.dateMenorQue(desdeDTP, hastaDTP);
			}catch(Exception ex){
				Utils.MessageError("Error al validar campo Desde", ex);
			}
		}
		
		void HastaDTPValueChanged(object sender, EventArgs e)
		{
			try{
				//Utils.dateMenorQueNow(sender, e);
				Utils.dateMayorQue(hastaDTP, desdeDTP);
			}catch(Exception ex){
				Utils.MessageError("Error al validar campo Hasta", ex);
			}
		}

	
		
		void CheckBox1CheckedChanged(object sender, EventArgs e)
		{
			
		}
		
		void SeleccionarCHBCheckedChanged(object sender, EventArgs e)
		{
			Utils.seleccionarTodo(descuentosDGV, sender, "Eliminar");
		}
		
		void DescuentosDGVCellDoubleClick(object sender, DataGridViewCellEventArgs e)
		{
			Utils.checkDobleClick(descuentosDGV, "Eliminar");
		}
	}
}
